iT邦幫忙

第 12 屆 iThome 鐵人賽

1

本文同步更新於blog

Builder Pattern

將複雜對象的構建與其表示分離


建造者模式會將類別分為三類:
分別是指揮者類別 (Director)建造者類別 (Builder)產品類別 (Product)

通常會透過指揮者來決定建造過程。
有時侯會省略指揮者,改由客戶端直接決定建造過程。


優點
可以按步驟,一步步地創建出物件。
將創建物件的邏輯與物件本身的邏輯分離。

缺點
會使程式碼變得複雜。


與其他模式的比較:

[工廠方法模式]:
工廠方法模式中,不同分類的產品都有了對應的工廠。
每個不同的選擇都是物件層級

建造者模式中,分離了建造者與產品。
每個不同的選擇都是步驟層級


而建造者模式常常會搭配流式接口 (Fluent Interface)的寫作風格。
流式接口通常依賴於
方法鏈 (Method Chaining)

藉由每個方法都回傳物件本身,來增加程式的可讀性

ʕ •ᴥ•ʔ:Laravel中的query builder,用的就是建造者模式的概念。


上一篇
Day38. 範例:三隻小豬 (原型模式)
下一篇
Day40. 範例:假期規劃 (建造者模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言